from pandas import read_csv, get_dummies
from sklearn.preprocessing import MinMaxScaler
from numpy import set_printoptions

filename = '附件2.csv'
names = ['方向', '时间', '车牌号', '交叉口']

# 1. 读取数据，并正确处理编码、表头和数据类型警告
data = read_csv(filename, names=names, skiprows=1, low_memory=False)

# 2. 将需要处理的列转换为字符串，避免混合类型错误
data['方向'] = data['方向'].astype(str)
data['交叉口'] = data['交叉口'].astype(str)

# 3. 选择需要进行数值化处理的特征列
features = data[['方向', '交叉口']]

# 4. 使用独热编码将类别特征转换为数值特征
features_dummies = get_dummies(features, columns=['方向', '交叉口'])

# 5. 初始化MinMaxScaler，准备将数据缩放到 0-1 之间
transformer = MinMaxScaler(feature_range=(0, 1))

# 6. 对独热编码后的纯数值数据进行缩放
scaled_features = transformer.fit_transform(features_dummies)

# 7. 设置打印选项并输出结果
set_printoptions(precision=3)
print("独热编码并缩放后的数据 (前5行):")
print(scaled_features[:5, :])
print("\n处理后的数据维度:", scaled_features.shape)
